﻿//#include "ScanMap.h"
// ChildView.h: CChildView 类的接口



#pragma once


// CChildView 窗口
#define MAX_X 50
#define MAX_Y 50

// 网格属性
class Alt {
public:
	int WIDTHOFF = 30;
	int HEIGHTOFF = 30;
	int HEIGHT = 16;
	int WIDTH = 16;

	int TOP_SHOW_H = 50;
	int TOP_THUNDERUK_NUM_W = 100;
};

// 枚举 当前点的状态
enum Values {
	NONE = 0,
	NUM_1 = 1, NUM_2 = 2, NUM_3 = 3, NUM_4 = 4, NUm_5 = 5,
	NUM_6 = 6, NUM_7 = 7, NUM_8 = 8,
	THUN, // 雷
	FLAG // 标记
};

enum Status {
	OFF = 0, // 未操作
	OPEN, // 打开
	BEN // 炸了
};

class CChildView : public CWnd
{
// 构造
public:
	CChildView();

// 特性
public:
	CBitmap m_bmCells;
	CBitmap m_bmFaces;
	CBitmap m_bmNumber;
	// 宽/高
	Alt alt;
	int W, H;
	int THUNDERUK_NUM;
	// 存放每个点的状态
	int values[MAX_X][MAX_Y];
	// 当前方格状态 0 未操作 1 翻开 2 标记
	int status[MAX_X][MAX_Y];
// 操作
public:
	// 初始化地图
	void init(int w, int h, int tnum);
	bool InBound(int l, int r);
	void revealSquare(int row, int col, int level);
	void ShowCell(CDC* pDC, int row, int col, int cell);
	void ShowCells(CDC* pDC);
	void ShowBoard(CDC* pDC);
	// 显示所有雷
	void ShowAllThunderuk();
	// 绘制数字显示
	void DrawLCD(CDC* pDC, int x, int y, int width, int num);
	void ShowLeftNum(CDC* pDC, CRect rc, int num);
	void ShowRightNum(CDC* pDC, CRect rc, int num);
	// 重写
protected:
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	
// 实现
public:
	virtual ~CChildView();
	
// 生成的消息映射函数
protected:
	afx_msg void OnPaint();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	// 在窗口类中添加消息处理函数
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnShowAllQuare();
	afx_msg void OnRestart();
};

